package com.shop.dao;

import com.shop.entity.ShowPageT;

import java.sql.SQLException;
import java.util.List;

/**
 * com.angluzha.shop.dao文档说明
 *
 * @author Angluzha
 * @version 2022/9/13
 */
public interface BaseDao <T>{
    /**
     * 通过泛型中不为空的 username或id查询对应的实体类结果 返回结果集中的第一个数据
     * @param t 需要查询的实体类
     * @return 数据库中存在的实体类
     */
    T selectOne(T t) throws SQLException;

    /**
     * 更新数据库中的数据集
     * @param t 需更新的实体类
     * @return 操作是否成功
     */
    boolean update(T t);

    /**
     * 插入数据
     * @param t 所插入数据封装的实体类
     * @return 操作是否成功
     */
    boolean insert(T t);

    /**
     * 按主键编号删除数据库中的数据
     * @param id 主键的id号
     * @return 操作是否成功
     */
    boolean deleteById(Integer id);


    /**
     * 查询数据库中所有的数据
     * @return
     */
    List<T> selectAll() throws SQLException;

    /**
     * 分页查询数据库中所有数据
     * @param page
     * @return
     */
    ShowPageT<T> selectPage(ShowPageT<T> page) throws SQLException;

    int delCheck(List<Integer> list);
}
